1. Field of the Invention
The present invention relates generally to a digital control system which reads instructions one at a time from a memory table previously stored in a semiconductor memory in order to obtain instructions to be given to a sensed control object on the basis of controlled variables.
2. Description of the Prior Art
Recently, microcomputers have been used increasingly to digitally control various kinds of equipment. Such digital control systems using microcomputers have been put to practical uses including custom appliances. Conventional digital control systems employ a table look-up method to retrieve instructions stored in a memory. In more detail, a control unit of the system reads one of the instructions previously stored in a Read-Only Memory (ROM) according to a detected value (a predetermined physical variable related to the controlled object) and controls the controlled object in accordance with the contents of the read instruction.
Since digital control systems of this type are capable of performing high speed processing, they can be advantageously applied to controlled objects which require extremely fast response, e.g., for fuel injection amount control and spark timing control of an internal combustion engine, etc., as seen in Japanese Publication No. 51-67831.
FIG. 1 shows a memory table for controlling an engine. In FIG. 1, the X-axis represents engine revolutions per minute (RPM). Individual values of engine revolutions per minute N.sub.1 . . . Ni are arranged along the X-axis at equal intervals. On the other hand, the Y-axis represents engine torque (load). Individual values of torque T.sub.1 . . . T.sub.l are arranged along the Y-axis at equal intervals. Consequently, a plurality of matrix cells is formed. An instruction in the form of a binary representation of, e.g., fuel injection amount, is stored within an address Ad (Nx, Ty) represented by the point of intersection between adjacent matrix cells. The number of bits in the binary representation should conform to that of the Central Processing Unit (CPU) of the microcomputer.
The Central Processing Unit detects and reads the engine revolution Na and torque Ta values via a plurality of sensors, specifies an address according to the detected values, Na, Ta to read its contents, i.e., a predetermined instruction. It should be noted that usually the actual values Na, Ta will coincide exactly with the cell values N.sub.1, N.sub.2 . . . , N.sub.l or T.sub.1, T.sub.2, . . . , T.sub.l but rather will be between pairs thereof. To cope with this situation, there are various techniques to approximate the corresponding address. For example, the address of the desired intersection can be determined simply by rounding fractions up, i.e. by taking the upper and rightward boundary of the target cell, or by truncating fractions, i.e. taking the nearest downward and leftward values. As an alternative, the instructions read from the four addresses surrounding the intersection of the actual values (Na, Ta) may be averaged according to the positional relationship of the intersections of the matrix cells to obtain a weighted average.
In either case, since in a control system employing a table look-up method, a predetermined instruction can be obtained by simply specifying an address, high-speed processing is possible and the desired control can be performed in cases when it is difficult to express the detected values and instructions in terms of functional relationships.
However, since the number of addresses increases with the total number of instructions, the memory capacity must be increased in order to improve control accuracy. Especially in engine control systems, to match individual engines specifications, a programmable ROM (PROM) is used in place of a relatively inexpensive mask ROM in order to allow the contents of memory to be changed after installation into the control system, so that the overall cost of the control system is increased.
In addition, memory capacity may be wasted depending on the contents of the control data. For example, if there are sixteen kinds of instructions, all of the instructions can be expressed in a four-bit binary representation since 16=2.sup.4. In this case, supposing that a group of binary digits operated upon as a unit is an 8-bit byte, each instruction must be stored within the ROM and/or PROM in the form of an 8-bit binary representation, thus requiring an unnecessarily large memory capacity.